Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

184
Vistas
El evento Electron "listo para mostrar" no funciona como se esperaba

Aquí hay un bloque de código de mi aplicación Codey .

src/principal.py

 // Show window once it has finished initialising docsWindow.once("ready-to-show", () => { if (darkMode) { docsWindow.webContents.send("dark-mode:toggle"); } if (!isDarwin) { docsWindow.webContents.send("platform:not-darwin"); } docsWindow.webContents.send("docs:jump", section); docsWindow.show(); });

src/docs/renderer.js

 window.api.darkMode.toggle.receive(toggleDarkMode);

Cuando darkMode = true, toggleDarkMode nunca se ejecuta.

Mi aplicación tiene dos ventanas diferentes: un editor y una ventana de documentos. Para ambas ventanas, en el evento "ready-to-show", se envía "dark-mode:toggle" al proceso de representación. Sin embargo, la ventana de documentos no puede ejecutar la función toggleDarkMode mientras funciona para la ventana del editor.

Nota: La aplicación debe empaquetarse usando "paquete de hilo" ya que algunas funciones no funcionan en el entorno de desarrollo.

Cualquier ayuda será muy apreciada.

(Repo: https://github.com/Liamohara/Codey )

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Para quien le interese. Encontré una solución a mi problema.

src/principal.py

 // Show window once it has finished initialising - docsWindow.once("ready-to-show", () => { + docsWindow.webContents.once("did-finish-load", () => { if (darkMode) { docsWindow.webContents.send("dark-mode:toggle"); } if (!isDarwin) { docsWindow.webContents.send("platform:not-darwin"); } docsWindow.webContents.send("docs:jump", section); docsWindow.show(); });

En la ventana de documentos, hay más contenido HTML para representar que en la ventana del editor. Como resultado, el DOM tarda más en cargarse y el evento "listo para mostrar" se emite antes de que finalice. El uso del evento "did-finish-load" garantiza que las funciones de la API no se llamen antes de que el DOM haya terminado de cargarse.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda